﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using log4net;
namespace QuanLyNhaSach
{
    public partial class frmDoiMatKhau : Form
    {
        //Tao Parttern Seleton
        static frmDoiMatKhau doituong = null;
        public static frmDoiMatKhau TaoDoiTuong()
        {
            if (doituong == null)
                doituong = new frmDoiMatKhau();
            return doituong;
        }

        public frmDoiMatKhau()
        {
            InitializeComponent();
        }
        #region "Khai Báo Biến"
        string maNhom = frmDangNhap.maNhom_FrmDangNhap;
        string maNV = frmDangNhap.maNV_FromDangNhap;
        string matKhau = "";
        sv_QuanLyNhaSach.AdapterClient xuli = new sv_QuanLyNhaSach.AdapterClient();
        private ILog logger;
        private KiemTraBatLoi test_BatLoi;
        #endregion
        private void frmDoiMatKhau_Load(object sender, EventArgs e)
        {
            test_BatLoi = new KiemTraBatLoi();
            logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            try
            {
                txt_taikhoan.Text = frmDangNhap.tenTaiKhoan_FrmDanhNhap;
                //Load Mat Khau Cu
                Load_MatKhauCu();
            }
            catch (Exception ex)
            {
                logger.Error("Error: " + ex.Message);
            }

        }

        private void Load_MatKhauCu()
        {
            logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            try
            {
                DataSet ds = new DataSet();
                ds.ReadXml(new StringReader(xuli.selectqueryByText("select MatKhau from TaiKhoanNV where MaTKNV = '" + txt_taikhoan.Text.Trim() + "'")));
                if (ds.Tables.Count > 0)
                    matKhau = ds.Tables[0].Rows[0][0].ToString().Trim();
            }
            catch (Exception ex)
            {
                logger.Error("Error: " + ex.Message);
            }

        }

        private void btn_DongY_Click(object sender, EventArgs e)
        {
            logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            try
            {                
                if (test_BatLoi.MahoaPassword(txt_MatKhauCu.Text.Trim()).Substring(0,10) != matKhau)
                    MessageBox.Show("Bạn nhập sai 'Mật Khẩu Cũ'.\nVui lòng nhập lại.", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                else
                {
                    if (txt_MatKhauMoi.Text != txt_XacNhanMatKhauMoi.Text)
                        MessageBox.Show("Bạn nhập sai 'Xác Nhận Mật Khẩu Mới'.\nVui lòng nhập lại.", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    else
                    {
                        string maMoi = test_BatLoi.MahoaPassword(txt_MatKhauMoi.Text).Substring(0,10);
                        xuli.UpdateTKNV(txt_taikhoan.Text.Trim(), maNhom, maNV, maMoi);
                        MessageBox.Show("Mật khẩu thay đổi thành công.", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        txt_MatKhauCu.Text = "";
                        txt_MatKhauMoi.Text = "";
                        txt_XacNhanMatKhauMoi.Text = "";
                        Load_MatKhauCu();
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error: " + ex.Message);
            }

        }

        private void btn_Dong_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
